package gti310.tp4;

import java.util.ArrayList;

/**
 * La classe ListeComposant contient la liste adjacente des composant de
 * l'application.
 * 
 * @author Fredy
 * @date 2014-12-05
 */
public class ListeComposant {

	//La liste adjacente des composantes de couleurs et leurs éléments
	private ArrayList<ArrayList<double[][]>> componentList;
	private ArrayList<ArrayList<double[]>> ZZList;

	/**
	 * Construceur de la classe ListeComposant, recoit en parametre une
	 * liste adjacente.
	 * 
	 * @param componentList
	 */
	public ListeComposant(ArrayList<ArrayList<double[][]>> componentList){
		this.componentList = componentList;		
		ZZList = new ArrayList<ArrayList<double[]>>();
	}

	/**
	 * 
	 * @param index
	 * @return the element of the index given.
	 */
	public ArrayList<double[][]> getComponent(int index){
		return componentList.get(index);
	}

	/**
	 * 
	 * 
	 * @param index
	 * @return the element of the index given.
	 */
	public ArrayList<double[]> getComponentZZ(int index){
		return ZZList.get(index);
	}

	/**
	 * 
	 * @return the list from ZigZag elements processed
	 */
	public ArrayList<ArrayList<double[]>> getZZList(){ 
		return ZZList; 
	}

	/**
	 * Méthode permettant de convertir les valeurs d'une matrice d'entier en
	 * double
	 * 
	 * @param la matrice d'entier à convertir
	 * @return la matrice de type double converti. 
	 */
	public double [][] setIntToDouble(int [][] a){
		double [][] b = new double [8][8];

		//Casting de toutes les valeurs du bloc 8x8
		for(int i=0; i<a.length;i++){
			for(int j=0; j< a[i].length; j++) {
				b[i][j] = (double)a[i][j];
			}
		}

		return b;

	}

	/**
	 * Retourne la taille de la liste adjacente
	 * 
	 * @return taille de la liste
	 */
	public int getTaille(){
		return componentList.size();
	}

}
